重くてConsistencyが重要ではないread APIをsecondaryに向けるだけでもかなりMongoDBのCPU負荷が減る
readはprimaryからも、secondaryからもできる
全てのreadをsecondaryに向けると、primary-secondaryの同期が遅れた場合に古いデータが返ってしまう
同期が遅れても問題ないAPIのうち、特に重いものからsecondary readにしていった
https://gyazo.com/5f64eaefa6c5bbf69736394b4e5be5a9
ページリスト画面
関連ページリスト
どのAPIが重いのかはNewRelic等で調べておくとよいshokai.icon consistencyが重要なAPIはprimary readするしかない
古いデータが返ってくるとコンフリクト解消にもう1往復必要になる
決済関係
お金払ってるのに払ってない扱いになるとまずい
session関係
loginしてるのにloginしてない扱いになるとまずい
connection
そのDB接続で発行したqueryは全てsecondaryから読む、とかが可能
使用例
batchは何もかもsecondary readにする
model
そのmodel (collection)へ発行されるquery全て
使用例
支払いとsession関係は全てprimary readにする
query
そのqueryはsecondaryから読む